// =====================  发号器 开始  ======================
console.log('=====================  发号器 开始  ======================')

function * createIdMaker() {
    let i = 0;
    while (true) {
        yield i++;
    }
}

const idMaker = createIdMaker();
console.log(idMaker.next().value);
console.log(idMaker.next().value);
console.log(idMaker.next().value);
console.log(idMaker.next().value);
 
console.log('=====================  发号器 结束  ======================')
// =====================  发号器 结束  ======================

// =====================  Generator 实现 interator 开始  ======================
console.log('=====================  Generator 实现 interator 开始  ======================');

const todos = {
    lift: ['吃饭', '睡觉', '打豆豆'],
    learn: ['语文', '数学'],
    aaa: ['aaa'],

    [Symbol.iterator]: function *() {

        const all = [...this.lift, ...this.learn, ...this.aaa];
        for (const item of all) {
            yield item;
        }
        // return {
        //     next() {
        //         return {
        //             value: all[index],
        //             done: index++ >= all.length
        //         }
        //     }
        // };
    }    


};

for (const item of todos) {
    console.log('generator 实现 iterator', item);
}





console.log('=====================  Generator 实现 interator 结束  ======================');
// =====================  Generator 实现 interator 结束  ======================